
import java.io.Serializable;
import java.rmi.RemoteException; 
import java.rmi.server.UnicastRemoteObject;
import java.util.ArrayList;
import java.util.List;


public class Agenda extends UnicastRemoteObject implements IAgenda/*, Serializable*/ {

	private static final long serialVersionUID = 2127142915448097112L;
	private ArrayList<IUsuario> contatos = new ArrayList<IUsuario>();
	private List<IEvento> eventos = new ArrayList<IEvento>();
	private Usuario usuario;
	
	public Agenda() throws RemoteException {}
	public Agenda(Usuario usua) throws RemoteException {
		usuario = usua;
	}
	public Agenda(Usuario usua, ArrayList<IUsuario> contat) throws RemoteException {
		usuario = usua;
		contatos = contat;
	}
	
	@Override
	public IUsuario getUsuario() throws RemoteException {
	    return usuario;
	}
	
	@Override
	public void adicionarContato(IUsuario usua) throws RemoteException {
		contatos.add(usua);
	}
	
	@Override
	public IUsuario localizarContato(String nome) throws RemoteException {
		for(IUsuario contato: contatos)
			if(contato.getNome().equals(nome)) return contato; 
		return null;	
	}
	
	@Override
	public ArrayList<IUsuario> getContatos() throws RemoteException {
		return contatos;
	}
	
	@Override
	public void adicionarEvento(IEvento evento) throws RemoteException {
		eventos.add(evento);
	}
	
	@Override
	public IEvento localizarEvento(String nome) throws RemoteException{
		for (IEvento evento : getEventos()) 
			if(evento.getNomeEvento().equals(nome)) return evento;
		return null;
	}
	
	@Override
	public List<IEvento> getEventos() throws RemoteException {
		return eventos;
	}
}
